package com.wc.算法基础课.A第一讲基础算法.日期问题.日期问题;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * @Author congge
 * @Date 2024/3/10 11:30
 * @description 日期问题
 * https://www.acwing.com/problem/content/description/1231/
 */
public class Main {
    static int[] m = new int[]{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        String[] sP = s.split("/");
        int a = Integer.parseInt(sP[0]);
        int b = Integer.parseInt(sP[1]);
        int c = Integer.parseInt(sP[2]);
        ArrayList<String> res = new ArrayList<>();
        // 1: 年月日
        if (isRight(a, b, c)) res.add(combine(a, b, c));
        // 2: 日月年
        if (isRight(c, b, a)) res.add(combine(c, b, a));
        // 3: 月日年
        if (isRight(c, a, b)) res.add(combine(c, a, b));

        res.sort(String::compareTo);
        String pre = res.get(0);
        System.out.println(pre);
        for (int i = 1; i < res.size(); i++) {
            if (!res.get(i).equals(pre)) {
                System.out.println(res.get(i));
            }
            pre = res.get(i);
        }
    }

    static boolean isRun(int y) {
        return y % 4 == 0 && y % 100 != 0 || y % 400 == 0;
    }

    static boolean isRight(int a, int b, int c) {
        int y = 1900 + a;
        if (a <= 59) {
            y += 100;
        }
        if (isRun(y)) m[2] = 29;
        else m[2] = 28;
        if (b >= 1 && b <= 12) {
            return c >= 1 && c <= m[b];
        }
        return false;
    }

    static String combine(int a, int b, int c) {
        int y = 1900 + a;
        if (a <= 59) y += 100;
        StringBuilder res = new StringBuilder();
        res.append(y);
        res.append('-');
        if (b < 10) res.append('0');
        res.append(b);
        res.append('-');
        if (c < 10) res.append('0');
        res.append(c);
        return res.toString();
    }
}
